package com.code.qgjx.mapper;

import com.code.qgjx.entity.ResignCommit;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;

@Mapper
public interface ResignCommitMapper {
    // 插入辞职申请
    int insert(ResignCommit resignCommit);
    
    // 更新辞职申请
    int update(ResignCommit resignCommit);
    
    // 根据ID查询
    ResignCommit selectById(@Param("id") Long id);
    
    // 根据用户ID查询（分页）
    List<Map> selectByUserId(@Param("userId") Long userId,
                             @Param("offset") int offset,
                             @Param("status") int sta,
                             @Param("limit") int limit);
    
    // 根据教师ID查询（分页）
    List<ResignCommit> selectByTeacherId(@Param("teacherId") Long teacherId, 
                                        @Param("offset") int offset, 
                                        @Param("limit") int limit);
    
    // 检查是否已存在未处理的申请
    ResignCommit checkExistingRequest(@Param("userId") Long userId, 
                                    @Param("jobPositionId") Long jobPositionId);

    // 根据ID删除
    int deleteById(@Param("id") Long id);

    // 获取用户的辞职申请总数
    int selectCountByUserId(@Param("userId") Long userId);

    // 获取教师需要审批的辞职申请总数
    int selectCountByTeacherId(@Param("teacherId") Long teacherId);
} 